home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / STUBANT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  6.3 KB  |  213 lines

  1. 10  'STUBANT - Stub Match for Antennas - 19 FEB 95 rev. 28 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"      'if ex$ not chained from previous program
  3. 30  IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
  4. 40  COMMON EX$,PROG$
  5. 50  CLS:KEY OFF:COLOR 7,0,1
  6. 60  UL$=STRING$(80,205)
  7. 70  U1$="#####.###"
  8. 80  U2$="##.###"
  9. 90  U3$="####.##"
  10. 100  PI=3.14159
  11. 110  '
  12. 120  '.....start
  13. 130  CLS
  14. 140  COLOR 15,2
  15. 150  PRINT " STUB MATCH for ANTENNAS";
  16. 160  PRINT TAB(61);"by ";CHR$(34);"LB";CHR$(34);" Cebik W4RNL ";
  17. 170  PRINT STRING$(80,32);
  18. 180  LOCATE CSRLIN-1,20:PRINT "edited for HAMCALC by George Murphy VE3ERP"
  19. 190  COLOR 1,0:PRINT STRING$(80,223);:COLOR 7,0
  20. 200  MARGIN=7
  21. 210  PRINT TAB(MARGIN);
  22. 220  PRINT "A Stub Matching system for any given Antenna Load Resistance (R),"
  23. 230  PRINT TAB(MARGIN);
  24. 240  PRINT "Antenna Load Reactance (X), and Matchline, Stub and Feedline"
  25. 250  PRINT TAB(MARGIN);
  26. 260  PRINT "Impedances (Zo)."
  27. 270  '
  28. 280  '.....schematic
  29. 290  COLOR 0,7:VIEW PRINT 7 TO 17:CLS:VIEW PRINT:LOCATE 7
  30. 300  LOCATE 25:PRINT STRING$(80,219);
  31. 310  LOCATE 7
  32. 320  PRINT
  33. 330  TB=27    'tab
  34. 340  PRINT TAB(TB-16);"/SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVE//BSAVESOUNDSOUNDSOUND ANTENNASOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND/"
  35. 350  PRINT TAB(TB);"          CALL  CALLDEFSNGSOUNDSOUND MATCHLINE to stub junction"
  36. 360  PRINT TAB(TB);"          BLOADCOLORVARPTR<0xB4!>DEFSNGSOUNDSOUND stub junction"
  37. 370  PRINT TAB(TB);"          CALLCALLCALLDEFSNGSOUNDSOUNDSOUND STUB"
  38. 380  PRINT TAB(TB);"          CALLCALLCALLCALL"
  39. 390  PRINT TAB(TB);"          CALLCSRLINCSRLINDEFSNGSOUNDSOUNDSOUND shorting bar (optional)"
  40. 400  PRINT TAB(TB);"          CALLCALLCALLCALL"
  41. 410  PRINT TAB(TB);"          CALL  CALLDEFSNGSOUNDSOUND FEEDLINE to stub junction"
  42. 420  PRINT TAB(TB);"          CALL  CALL"
  43. 430  PRINT
  44. 440  LN=CSRLIN:LOCATE LN-8
  45. 450  PRINT " Feedline and Matchline should be"
  46. 460  PRINT " as near horizontal as possible at"
  47. 470  PRINT " the stub junction, with the stub"
  48. 480  PRINT " hanging vertically."
  49. 490  COLOR 7,0
  50. 500  LOCATE LN
  51. 510  PRINT TAB(MARGIN);
  52. 520  PRINT "For any antenna load R and X, this program finds the Matchline and"
  53. 530  PRINT TAB(MARGIN);
  54. 540  PRINT "Stub lengths needed to match any feedline Zo if a match is possible"
  55. 550  PRINT TAB(MARGIN);
  56. 560  PRINT "with the proposed Line, Stub, and Feed Zo values."
  57. 570  PRINT UL$;
  58. 580  COLOR 14,4
  59. 590  LOCATE CSRLIN,14
  60. 600  PRINT "........Press <1> to CONTINUE or <0> to EXIT........."
  61. 610  COLOR 7,0
  62. 620  Z$=INKEY$
  63. 630  IF Z$="0"THEN CLS:CHAIN GO$
  64. 640  IF Z$="1"THEN LOCATE CSRLIN-1:PRINT STRING$(80,32);:GOTO 660
  65. 650  GOTO 620
  66. 660  GOSUB 2000      'screen dump
  67. 670  '
  68. 680  '.....data input
  69. 690  VIEW PRINT 2 TO 24:CLS:VIEW PRINT:LOCATE 2:PRINT UL$;
  70. 700  GOTO 770
  71. 710  '
  72. 720  '.....format entry
  73. 730  LOCATE CSRLIN-1:PRINT "       ";
  74. 740  LOCATE CSRLIN,58:PRINT USING U1$;Y;
  75. 750  RETURN
  76. 760  '
  77. 770  INPUT " ENTER: Antenna Load Resistance..........................(ohms) ";RL
  78. 780  Y=RL:GOSUB 720:PRINT " -    "
  79. 790  INPUT " ENTER: Antenna Load Reactance...........................(ohms) ";XL
  80. 800  Y=XL:GOSUB 720:PRINT " -    "
  81. 810  INPUT " ENTER: Frequency.........................................(MHz) ";FQ
  82. 820  Y=FQ:GOSUB 720:PRINT " MHz  "
  83. 830  INPUT " ENTER: Impedance of MATCHLINE (Stub to Antenna).........(ohms) ";ZL
  84. 840  Y=ZL:GOSUB 720:PRINT " -    "
  85. 850  INPUT " ENTER: Velocity Factor of MATCHLINE (decimal)................. ";VFL
  86. 860  Y=VFL:GOSUB 720:PRINT "      "
  87. 870  INPUT " ENTER: Impedance of FEEDLINE (Stub to Rig)..............(ohms) ";ZF
  88. 880  Y=ZF:GOSUB 720:PRINT " -    "
  89. 890  INPUT " ENTER: Velocity Factor of FEEDLINE (decimal).................. ";VFF
  90. 900  Y=VFF:GOSUB 720:PRINT "      "
  91. 910  INPUT " ENTER: Impedance of STUB................................(ohms) ";ZS
  92. 920  Y=ZS:GOSUB 720:PRINT " -    "
  93. 930  INPUT " ENTER: Velocity Factor of STUB (decimal)...................... ";VFS
  94. 940  Y=VFS:GOSUB 720:PRINT "      "
  95. 950  '
  96. 960  '.....calculate
  97. 970  RLS=RL^2:XLS=XL^2:ZLS=ZL^2:RIS=RI^2
  98. 980  RHOS=((RL-ZL)^2+XLS)/((RL+ZL)^2+XLS)
  99. 990  RT=(ZL^2*(1-RHOS))/(ZF*(RHOS-1)+2*ZL*(RHOS+1))
  100. 1000  RI=RT
  101. 1010  XT=SQR(ZF*RT-RT^2)
  102. 1020  A=XLS/ZLS+RLS/ZLS-RL/RI
  103. 1030   IF A=0 THEN A=9E-09
  104. 1040  B=2*XL/ZL
  105. 1050  C=1-RL/RI
  106. 1060  NUM=B^2-4*A*C
  107. 1070   IF NUM<0 THEN 1400
  108. 1080  TLP=(B+SQR(B^2-4*A*C))/(2*A)
  109. 1090  TLM=(B-SQR(B^2-4*A*C))/(2*A)
  110. 1100  LP=ATN(TLP)
  111. 1110  LM=ATN(TLM)
  112. 1120  LPD=LP*180/PI
  113. 1130   IF LPD<0 THEN LPD=180+LPD
  114. 1140  LMD=LM*180/PI
  115. 1150   IF LMD<0 THEN LMD=180+LMD
  116. 1160  LPF=LPD*VFL/(0.366013*FQ)
  117. 1170  LMF=LMD*VFL/(0.366013*FQ)
  118. 1180  PRINT " MATCHLINE Option A: Length..............................";
  119. 1190  PRINT USING U1$;LPF;:PRINT " ft.=";USING U2$;LPF*0.3048;:PRINT "m"
  120. 1200  LOCATE CSRLIN+5
  121. 1210  PRINT " MATCHLINE Option B: Length..............................";
  122. 1220  PRINT USING U1$;LMF;:PRINT " ft.=";USING U2$;LMF*0.3048;:PRINT "m"
  123. 1230  LR=LP:GOTO 1450
  124. 1240  RIA=RI:XIA=XI
  125. 1250  LOCATE CSRLIN-6
  126. 1260  PRINT TAB(9);"Series resistance before stub installation.......";
  127. 1270  PRINT USING U1$;RI;:PRINT " -"
  128. 1280  PRINT TAB(9);"Series reactance before stub installation........";
  129. 1290  PRINT USING U1$;XI;:PRINT " -"
  130. 1300  LR=LM:GOTO 1450
  131. 1310  RIB=RI
  132. 1320  XIB=XI
  133. 1330  LOCATE CSRLIN+4
  134. 1340  PRINT TAB(9);"Series resistance before stub installation.......";
  135. 1350  PRINT USING U1$;RI;:PRINT " -"
  136. 1360  PRINT TAB(9);"Series reactance before stub installation........";
  137. 1370  PRINT USING U1$;XI;:PRINT " -"
  138. 1380  GOTO 1650
  139. 1390  '
  140. 1400  PRINT"   There are no possible solutions with this combination of antenna"
  141. 1410  PRINT"   impedance and line impedance. Resistance along the line does not"
  142. 1420  PRINT"   reach the value of the characteristic impedance of the feed line."
  143. 1430  GOTO 1970
  144. 1440  '
  145. 1450  IF RL=0 THEN RL=9E-09
  146. 1460  RA=RL/ZL
  147. 1470  XA=XL/ZL
  148. 1480  T=TAN(LR)
  149. 1490  TS=T*T
  150. 1500  DA=(1-XA*T)*(1-XA*T)
  151. 1510  DB=(RA*T)^2
  152. 1520  DN=DA+DB
  153. 1530  RS=RA^2
  154. 1540  XS=XA^2
  155. 1550  RN=RA*(1+TS)
  156. 1560  XK=XA*(1-TS)
  157. 1570  XM=((1-RS)-XS)*T
  158. 1580  XN=XK+XM
  159. 1590  RZ=RN/DN
  160. 1600  XZ=XN/DN
  161. 1610  RI=ZL*RZ
  162. 1620  XI=ZL*XZ
  163. 1630  IF LR=LP THEN GOTO 1240
  164. 1640  IF LR=LM THEN GOTO 1310
  165. 1650  LOCATE CSRLIN-6
  166. 1660  XPA=(RIA^2+XIA^2)/XIA:XCOMPA=(-1*XPA)
  167. 1670  PRINT "        Required parallel stub reactance to compensate...";
  168. 1680  PRINT USING U1$;XCOMPA;:PRINT " -"
  169. 1690  LRL=ATN(XCOMPA/ZS):LDL=ABS(LRL)*180/PI
  170. 1700  IF XCOMPA<0 THEN LDL=180-LDL
  171. 1710  LFL=LDL*VFS/(0.366013*FQ)
  172. 1720  LRC=ATN(ZS/XCOMPA):LDC=ABS(LRC)*180/PI
  173. 1730  IF XCOMPA>0 THEN LDC=180-LDC
  174. 1740  LFC=LDC*VFS/(0.366013*FQ)
  175. 1750  PRINT "        SHORTED STUB length is";USING U3$;LDL;
  176. 1760  PRINT "<UNK! {00F8}> or................";USING U1$;LFL;:PRINT " ft.=";
  177. 1770  PRINT USING U2$;LFL*0.3048;:PRINT "m"
  178. 1780  PRINT "        OPEN STUB length is   ";USING U3$;LDC;
  179. 1790  PRINT "<UNK! {00F8}> or................";USING U1$;LFC;:PRINT " ft.=";
  180. 1800  PRINT USING U2$;LFC*0.3048;:PRINT "m"
  181. 1810  LOCATE CSRLIN+3
  182. 1820  XPB=(RIB^2+XIB^2)/XIB:XCOMPB=(-1*XPB)
  183. 1830  PRINT "        Required parallel stub reactance to compensate...";
  184. 1840  PRINT USING U1$;XCOMPB;:PRINT " -"
  185. 1850  LRL=ATN(XCOMPB/ZS):LDL=ABS(LRL)*180/PI
  186. 1860  IF XCOMPB<0 THEN LDL=180-LDL
  187. 1870  LFL=LDL*VFS/(0.366013*FQ)
  188. 1880  LRC=ATN(ZS/XCOMPB):LDC=ABS(LRC)*180/PI
  189. 1890  IF XCOMPB>0 THEN LDC=180-LDC
  190. 1900  LFC=LDC*VFS/(0.366013*FQ)
  191. 1910  PRINT "        SHORTED STUB length is";USING U3$;LDL;
  192. 1920  PRINT "<UNK! {00F8}> or................";USING U1$;LFL;:PRINT " ft.=";
  193. 1930  PRINT USING U2$;LFL*0.3048;:PRINT "m"
  194. 1940  PRINT "        OPEN STUB length is   ";USING U3$;LDC;
  195. 1950  PRINT "<UNK! {00F8}> or................";USING U1$;LFC;:PRINT " ft.=";
  196. 1960  PRINT USING U2$;LFC*0.3048;:PRINT "m"
  197. 1970  GOSUB 2000
  198. 1980  GOTO 120   'start
  199. 1990  '
  200. 2000  'HARDCOPY
  201. 2010  GOSUB 2120:LOCATE 25,2:COLOR 14,6
  202. 2020  PRINT " Press 1 to print screen, 2 to print screen & ";
  203. 2030  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  204. 2040  Z$=INKEY$:IF Z$="3"THEN GOSUB 2120:RETURN
  205. 2050  IF Z$="1"OR Z$="2"THEN GOSUB 2120:GOTO 2070
  206. 2060  GOTO 2040
  207. 2070  FOR QX=1 TO 24:FOR QY=1 TO 80
  208. 2080  LPRINT CHR$(SCREEN(QX,QY));
  209. 2090  NEXT QY:NEXT QX
  210. 2100  IF Z$="2"THEN LPRINT CHR$(12)
  211. 2110  GOTO 2010
  212. 2120  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  213.